package com.kc.gb.device.plugins.ptl.service;

import com.kc.gb.device.plugins.ptl.dto.PtlLightState;
import com.kc.gb.feign.ptl.support.dtos.AbstractPtlCommand;

import java.util.List;
import java.util.Map;

public interface PtlHardwareService {

    Map<Integer, PtlLightState> getStateStore(boolean isDebugMode);

    List<PtlLightState> getLightStates(boolean inDebugMode, List<Integer> lightNos);

    /**
     * MQ 默认使用模拟器模式
     * @param commands
     * @param isDebugMode
     * @param <T>
     */
    <T extends AbstractPtlCommand> void consumeCommands(List<T> commands, boolean isDebugMode);

    /**
     * 拍灯事件
     * @param lightNo
     */
    void confirmed(int lightNo);
}
